The invention relates generally to header compression/decompression in packet flows and, more particularly, to the calculation of checksums for use by a header compressor or decompressor.
The wide popularity of personal wireless communication devices such as cellular telephones and others, combined with the increasing use of the Internet, has driven a desire to provide Internet Protocol (IP) traffic over wireless communication links. Due to the relatively scarce communication resources available in conventional wireless communication links, various techniques have been developed to compress the information included in the headers of data packets, for example the IP headers used in packets that carry IP traffic. In the transmitting station, the full header information is compressed by a header compressor, and the compressed header information is transmitted over the wireless communication link. At the receiving station, a header decompressor reconstructs the full header from the compressed header information that was transmitted. This reduces the amount of wireless communication link resources necessary for transmission of the header information.
FIG. 1 diagrammatically illustrates an example of a conventional wireless communication station (e.g., a cellular telephone) that provides for wireless packet communications (for example IP traffic) with header compression/decompression. In the example of FIG. 1, a packet processor 14 is coupled for bidirectional communication with a communications application 11 and a wireless communications interface 13. The packet processor 14 receives communications information from the communications application 11, and assembles this information into appropriate packets, which are then forwarded to the wireless communications interface 13 for transmission across a wireless communication link 15. The packets 10 produced by the packet processor 14 include a header portion 18 and a payload portion 16. Payload portion 16 includes payload information, and the header portion 18 includes compressed header information 17 and a checksum 19. As shown in FIGS. 1 and 2, the packet processor 14 uses a header compressor 21 to compress full header information received from the communications application 11 in order to produce the compressed header information 17. Also, the packet processor 14 uses a checksum generator 12 to produce the checksum 19, which checksum covers the full header information.
When the communication station of FIG. 1 receives a packet 10 via the wireless communication link 15, the packet processor 14 uses a header decompressor and the checksum generator 12 to reconstruct the full header information from the compressed header information 17 and the checksum 19. The header from which the compressed header information was produced is the target header that the reconstructed header attempts to match. The reconstructed full header information is then provided to the communications application 11 along with the payload information. When a context update occurs, additional information to update the context is added to the header by the transmitting end, and checksum generation is needed at the receiving end (see broken line in FIG. 3).
In some known header compression/decompression schemes, the decompressor attempts to guess (or estimate) the full header from the received compressed header information. Such techniques can be effective because some portions of a packet header can usually be expected to change in a relatively easily predictable fashion. For example, some conventional real time voice applications utilize in their headers time stamp fields that are relatively easily predictable. Other examples include real time video applications, and headers for regular best effort services such as, for example, FTP. When the decompressor makes a guess of (or estimates) the full header, a checksum is generated based on this guess/estimate, and is then compared to the checksum that was received with the compressed header. This is illustrated in FIG. 3. The guess generator 31 of the header decompressor of packet processor 14 receives the compressed header information 17 from the wireless communications interface 13. The full header guess produced by the guess generator is then applied to a checksum generator 12, which produces therefrom a checksum 19xe2x80x2. This checksum 19xe2x80x2 is then compared at 33 to the checksum 19 received with the compressed header information. If the checksums match, then the guess/estimate is considered to be a correct reconstruction of the target header. However, if the checksums do not match at 33, then the guess generator 31 is instructed to guess again, whereupon the above-described checksum generation and comparison process is repeated.
Disadvantageously, the checksum generation process described above with respect to both header compression and header decompression is computationally complex, and the computational requirements at the decompressor increase as the number of guesses increases.
It is therefore desirable to reduce the computational complexity associated with checksum generation in header compressors and decompressors.
The present invention reduces the computational complexity of checksum generation by utilizing static checksum information associated with header bits that do not change from header to header. This static checksum information can be used together with information about header bits that have changed, in order to generate the desired checksum. According to some embodiments, a static checksum coding state associated with the unchanging header bits can be used in combination with the changing header bits themselves to produce the desired checksum. In other embodiments, a checksum component associated with the unchanging header bits can be used in combination with checksum components associated with the changing header bits to produce the checksum. The use of static checksum information advantageously reduces the computational complexity of checksum generation. The reduced-complexity checksum generation of the present invention can be used to calculate checksums associated with reconstructed headers at a header decompressor, and can also be used at the compressor end to calculate the checksums that are transmitted along with the compressed header information.